SDK初始化说明
注意事项
①任意广告类型均不支持中途更改代理,中途更改代理会导致接收不到广告相关回调,如若存在中途更改代理场景,需自行处理相关逻辑,确保广告相关回调正常执行。
②使用SDK聚合功能需将useMediation设置为YES。useMediation仅可设置一次,不支持后续二次修改。
③需要确保在SDK初始化成功后再进行广告请求,否则可能导致广告请求加载失败。
④默认仅支持初始化SDK一次,避免多次初始化SDK场景。
⑤所有广告类型统一引用#import <CloooudSDK/CloooudSDK.h>头文件即可调用对应方法进行集成。
⑥建议优先使用异步初始化方法进行SDK初始化,后续同步初始化方法会逐步废弃。
⑦接入过程中,强烈建议双端分别使用各自的应用ID进行测试,不要混用,否则可能会影响收益。
⑧setIsPaidApp:和setUserKeywords:须征得用户同意才可传入。
接入示例
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
CloooudAdSDKConfiguration *configuration = [CloooudAdSDKConfiguration configuration];
// 请更换为在平台申请的appid
configuration.appID = @"xxxxxx";
// 如果使用聚合维度功能,则务必将以下字段设置为YES
configuration.useMediation = YES;
// SDK异步初始化
[CloooudAdSDKManager startWithAsyncCompletionHandler:^(BOOL success, NSError *error) {
if (success) {
dispatch_async(dispatch_get_main_queue(), ^{
//请求广告逻辑处理
});
}
}];
return YES;
}
接口说明
CloooudAdSDKConfiguration类
CloooudAdSDKConfiguration类支持个性化配置SDK选项,需在调用SDK初始化方法前设置,尤其必要的appID等参数,其中部分设置支持中途修改。
方法名 | 说明 |
---|---|
@property (nonatomic, copy) NSString *appID; | 应用ID,必选参数 |
@property (nonatomic, copy) NSString *secretKey; | 唯一标识,可选参数 |
@property (nonatomic, assign) CloooudAdSDKLogLevel logLevel; | 开发者模式,默认为 CloooudAdSDKLogLevelNone |
@property (nonatomic, assign) CloooudAdSDKAgeGroup ageGroup; | 成人/未成年 |
@property (nonatomic, copy) NSString *userExtData; | 其他用户信息 |
@property (nonatomic, assign) CloooudOfflineType webViewOfflineType; | 默认是CloooudOfflineTypeWebview |
@property (nonatomic, strong) NSNumber *debugLog; | debug日志开关 |
@property (nonatomic, strong) NSNumber *themeStatus; | 主题模式 |
@property (nonatomic, strong) NSArray<NSNumber > abvids; | 自定义ab实验 |
@property (atomic, copy) NSString *abSDKVersion; | ab实验SDK版本 |
@property (nonatomic, copy) NSString *customIdfa; | 自定义IDFA |
@property (nonatomic, assign) BOOL allowModifyAudioSessionSetting; | 是否允许SDK在播放音频时修改AVAudioSession的类别和选项,默认为NO; SDK默认设置的类别是AVAudioSessionCategoryAmbient,可切换为AVAudioSessionCategoryOptionDuckOthers自行控制音频设置 |
@property (nonatomic, assign) BOOL unityDeveloper; | unity开发者设置为YES,否则为NO |
@property (nonatomic, strong) id |
设置SDK是否使用某些隐私数据,或者自定义隐私数据 如果未设置此属性,SDK将执行默认的隐私数据使用逻辑 |
@property (nonatomic, strong, nullable) UIImage *appLogoImage; | 应用logo |
@property (nonatomic, assign) BOOL SDKDECloooudG; | SDK是否处于调试模式,默认为NO 当设置为YES时,将初始化一些必要的调试信息 @warning建议在开发阶段设置为YES,这样可以在开发阶段输出必要的调试信息,方便调试和异常解决。 在发布应用程序时,建议将其设置为NO,否则额外的输出将影响性能 |
@property (nonatomic, assign) BOOL useMediation; | 是否使用聚合功能,默认为NO; useMediation仅可设置一次,不支持后续二次修改 |
@property (nonatomic, strong, readonly) CloooudAdSDKConfigurationMediation *mediation; | 调用该接口,用于继续设置聚合维度相关属性 |
@property (nonatomic, strong) CloooudMUserInfoForSegment *userInfoForSegment; | 配置用户分组信息,可随时更新,但用户分组信息更新将触发配置重新加载,请谨慎使用 |
@property (nonatomic, strong) NSNumber *limitPersonalAds; | 是否限制个性化广告: 0-不限制,1-限制,默认为0。官方维护版本中只适用于CSJ,Ks、Sigmob、百度、GDT |
@property (nonatomic, strong) NSNumber *limitProgrammaticAds; | 是否限制程序化广告: 0-不限制,1-限制,默认为0。官方维护版本中只适用于Ks |
@property (nonatomic, strong) NSNumber *forbiddenCAID; | 是否禁止CAID:0-不禁止,1-禁止,默认为0。官方维护版本中只适用于百度 |
@property (nonatomic, copy, nullable) NSString *advanceSDKConfigPath; | 设置预先从平台下载的SDKConfig文件路径,当首次安装网络请求SDKConfig失败时会使用,需在SDK初始化前设置 |
@property (nonatomic, copy) NSDictionary *extraDeviceMap; | 设置扩展设备信息,如不了解该功能,请勿使用。 如@"[{\"device_id\":\"62271333038\"}]" |
CloooudAdSDKManagert类
该类是整个 SDK 设置的入口和接口,可以设置 SDK 的一些全局信息,提供类方法获取设置结果。
方法名 | 说明 |
---|---|
@property (nonatomic, copy, readonly, class) NSString *SDKVersion; | SDK版本号 |
@property (nonatomic, assign, readonly, class) CloooudAdSDKInitializationState initializationState; | SDK的start状态 |
+ (void)startWithAsyncCompletionHandler:(CloooudCompletionHandler)completionHandler; | 异步初始化 |
@property (class) CloooudAdSDKManagerMediation mediation; | SDK初始化后可调用该接口,用于继续调用聚合维度相关方法 |
+ (NSDictionary * _Nullable)getGMSDKExtraInfo; | 获取各类补充信息 |
+ (void)preloadAdsWithInfos:(NSArray *)infos andInterval:(NSInteger)interval andConcurrent:(NSInteger)concurrent; | 触发首次预缓存,针对特定广告位 infos 广告对象 interval 指定每轮请求的时间间隔, 允许时间范围:1-10 concurrent 并发请求的广告数, 允许个数范围:1-20 |
+ (void)configAdapterWithKey:(NSString *)key andBlock:(void(^)(void))block; | 个性化配置类 |
完整接入示例
CloooudAdSDKConfiguration *configuration = [CloooudAdSDKConfiguration configuration];
// 设置APPID
configuration.appID = @"应用ID";
// 设置日志输出
configuration.logLevel = CloooudAdSDKLogLevelDebug;
configuration.debugLog = @(1);
// 是否使用聚合
configuration.useMediation = YES;
// 隐私合规配置
// 不限制个性化广告(聚合维度功能)
configuration.mediation.limitPersonalAds = @(0);
// 不限制程序化广告(聚合维度功能)
configuration.mediation.limitProgrammaticAds = @(0);
// 不禁止CAID(聚合维度功能)
configuration.mediation.forbiddenCAID = @(0);
// 未成年配置
configuration.ageGroup = CloooudAdSDKAgeGroupAdult;
// 主题模式
configuration.themeStatus = @(CloooudAdSDKThemeStatus_Normal);
// 流量分组配置(聚合维度功能)
CloooudMUserInfoForSegment *segment = [[CloooudMUserInfoForSegment alloc] init];
segment.user_id = @"123";
segment.user_value_group = @"12345";
segment.age = 18;
segment.gender = CloooudUserInfoGenderMale;
segment.channel = @"chanel";
segment.sub_channel = @"sub_channel";
configuration.mediation.userInfoForSegment = segment;
// 初始化
[CloooudAdSDKManager startWithAsyncCompletionHandler:^(BOOL success, NSError *error) {
if (success) {
// 处理成功之后的逻辑
// 在SDK初始化成功后再进行广告请求,否则可能导致广告请求加载失败
}
}];